add src for LatestAppInfo/SplashInfo

Brightcells 8 年之前
父节点
当前提交
27d3ec8fb1

+ 19 - 0
message/migrations/0007_auto_20160907_1740.py

@@ -0,0 +1,19 @@
1
+# -*- coding: utf-8 -*-
2
+from __future__ import unicode_literals
3
+
4
+from django.db import models, migrations
5
+
6
+
7
+class Migration(migrations.Migration):
8
+
9
+    dependencies = [
10
+        ('message', '0006_systemmessageinfo_src'),
11
+    ]
12
+
13
+    operations = [
14
+        migrations.AlterField(
15
+            model_name='systemmessageinfo',
16
+            name='src',
17
+            field=models.IntegerField(default=0, help_text='\u7cfb\u7edf\u6d88\u606f\u7c7b\u522b', db_index=True, verbose_name='src', choices=[(0, '\u62cd\u7231\u7528\u6237\u7aef'), (1, '\u62cd\u7231\u6444\u5f71\u5e08\u7aef')]),
18
+        ),
19
+    ]

+ 1 - 1
message/models.py

@@ -88,7 +88,7 @@ class SystemMessageInfo(CreateUpdateMixin):
88 88
     title = models.CharField(_(u'title'), max_length=255, help_text=u'系统消息标题')
89 89
     content = models.TextField(_(u'content'), blank=True, null=True, help_text=u'系统消息内容')
90 90
     url = models.CharField(_(u'url'), max_length=255, blank=True, null=True, help_text=u'系统消息链接')
91
-    src = models.IntegerField(_(u'src'), choices=SRC, default=PAIAI_USER, help_text=u'系统消息类别')
91
+    src = models.IntegerField(_(u'src'), choices=SRC, default=PAIAI_USER, help_text=u'系统消息类别', db_index=True)
92 92
 
93 93
     class Meta:
94 94
         verbose_name = _('systemmessageinfo')

+ 14 - 11
operation/admin.py

@@ -11,27 +11,30 @@ from utils.redis.rversion import delete_guest_entrance_control, set_guest_entran
11 11
 
12 12
 
13 13
 class LatestAppInfoAdmin(admin.ModelAdmin):
14
-    list_display = ('latest_adr_version_code', 'latest_adr_version_name', 'latest_adr_app', 'latest_adr_url', 'latest_ios_version_code', 'latest_ios_version_name', 'latest_ios_url', 'status', 'created_at', 'updated_at')
14
+    list_display = ('latest_adr_version_code', 'latest_adr_version_name', 'latest_adr_app', 'latest_adr_url', 'latest_ios_version_code', 'latest_ios_version_name', 'latest_ios_url', 'src', 'status', 'created_at', 'updated_at')
15
+    list_filter = ('src', 'status')
15 16
 
16 17
     def save_model(self, request, obj, form, change):
17 18
         obj.save()
18 19
 
19
-        # 更新安卓下载页面
20
-        write_to_disk(render_to_string('page/download.tmpl.html', {
21
-            'version': obj.latest_adr_version_name,
22
-        }), settings.DOWNLOAD_ADR_PAGE_PATH)
20
+        if obj.src == LatestAppInfo.PAIAI_USER:
21
+            # 更新安卓下载页面
22
+            write_to_disk(render_to_string('page/download.tmpl.html', {
23
+                'version': obj.latest_adr_version_name,
24
+            }), settings.DOWNLOAD_ADR_PAGE_PATH)
23 25
 
24
-        # 更新 iOS 下载页面
25
-        write_to_disk(render_to_string('page/download.tmpl.html', {
26
-            'version': obj.latest_ios_version_name,
27
-        }), settings.DOWNLOAD_IOS_PAGE_PATH)
26
+            # 更新 iOS 下载页面
27
+            write_to_disk(render_to_string('page/download.tmpl.html', {
28
+                'version': obj.latest_ios_version_name,
29
+            }), settings.DOWNLOAD_IOS_PAGE_PATH)
28 30
 
29 31
         # 设置最新 APP 信息
30
-        set_latest_app()
32
+        set_latest_app(obj.src)
31 33
 
32 34
 
33 35
 class SplashInfoAdmin(admin.ModelAdmin):
34
-    list_display = ('splash_image', 'spalash_image_airtime', 'spalash_image_deadline', 'status', 'created_at', 'updated_at')
36
+    list_display = ('splash_image', 'spalash_image_airtime', 'spalash_image_deadline', 'src', 'status', 'created_at', 'updated_at')
37
+    list_filter = ('src', 'status')
35 38
 
36 39
 
37 40
 class FeedbackInfoAdmin(admin.ModelAdmin):

+ 29 - 0
operation/migrations/0007_auto_20160907_1740.py

@@ -0,0 +1,29 @@
1
+# -*- coding: utf-8 -*-
2
+from __future__ import unicode_literals
3
+
4
+from django.db import models, migrations
5
+
6
+
7
+class Migration(migrations.Migration):
8
+
9
+    dependencies = [
10
+        ('operation', '0006_feedbackinfo_src'),
11
+    ]
12
+
13
+    operations = [
14
+        migrations.AddField(
15
+            model_name='latestappinfo',
16
+            name='src',
17
+            field=models.IntegerField(default=0, help_text='\u6700\u65b0\u7248\u6765\u6e90', db_index=True, verbose_name='src', choices=[(0, '\u62cd\u7231\u7528\u6237\u7aef'), (1, '\u62cd\u7231\u6444\u5f71\u5e08\u7aef')]),
18
+        ),
19
+        migrations.AddField(
20
+            model_name='splashinfo',
21
+            name='src',
22
+            field=models.IntegerField(default=0, help_text='\u542f\u52a8\u9875\u9762\u6765\u6e90', db_index=True, verbose_name='src', choices=[(0, '\u62cd\u7231\u7528\u6237\u7aef'), (1, '\u62cd\u7231\u6444\u5f71\u5e08\u7aef')]),
23
+        ),
24
+        migrations.AlterField(
25
+            model_name='feedbackinfo',
26
+            name='src',
27
+            field=models.IntegerField(default=0, help_text='\u7528\u6237\u53cd\u9988\u6765\u6e90', db_index=True, verbose_name='src', choices=[(0, '\u62cd\u7231\u7528\u6237\u7aef'), (1, '\u62cd\u7231\u6444\u5f71\u5e08\u7aef')]),
28
+        ),
29
+    ]

+ 20 - 1
operation/models.py

@@ -23,6 +23,14 @@ def upload_path(instance, old_filename):
23 23
 
24 24
 
25 25
 class LatestAppInfo(CreateUpdateMixin):
26
+    PAIAI_USER = 0
27
+    PAIAI_LENSMAN = 1
28
+
29
+    SRC = (
30
+        (PAIAI_USER, u'拍爱用户端'),
31
+        (PAIAI_LENSMAN, u'拍爱摄影师端'),
32
+    )
33
+
26 34
     latest_adr_version_code = models.IntegerField(_(u'latest_adr_version_code'), default=0, help_text=u'最新安卓版本号')
27 35
     latest_adr_version_name = models.CharField(_(u'latest_adr_version_name'), max_length=255, blank=True, null=True, help_text=u'最新安卓版本名')
28 36
     latest_adr_app = models.FileField(_(u'latest_adr_app'), upload_to=upload_path, blank=True, null=True, help_text=u'最新版安卓 APP')
@@ -32,6 +40,8 @@ class LatestAppInfo(CreateUpdateMixin):
32 40
     latest_ios_version_name = models.CharField(_(u'latest_ios_version_name'), max_length=255, blank=True, null=True, help_text=u'最新 iOS 版本名')
33 41
     latest_ios_url = models.URLField(_(u'latest_ios_url'), max_length=255, blank=True, null=True, help_text=u'最新版 iOS 链接')
34 42
 
43
+    src = models.IntegerField(_(u'src'), choices=SRC, default=PAIAI_USER, help_text=u'最新版来源', db_index=True)
44
+
35 45
     class Meta:
36 46
         verbose_name = _('latestappinfo')
37 47
         verbose_name_plural = _('latestappinfo')
@@ -56,9 +66,18 @@ class LatestAppInfo(CreateUpdateMixin):
56 66
 
57 67
 
58 68
 class SplashInfo(CreateUpdateMixin):
69
+    PAIAI_USER = 0
70
+    PAIAI_LENSMAN = 1
71
+
72
+    SRC = (
73
+        (PAIAI_USER, u'拍爱用户端'),
74
+        (PAIAI_LENSMAN, u'拍爱摄影师端'),
75
+    )
76
+
59 77
     splash_image = models.ImageField(_(u'splash_image'), upload_to=upload_path, blank=True, null=True, help_text=u'启动页面图片')
60 78
     spalash_image_airtime = models.DateTimeField(_(u'spalash_image_airtime'), blank=True, null=True, help_text=u'启动页面图片开始日期')
61 79
     spalash_image_deadline = models.DateTimeField(_(u'spalash_image_deadline'), blank=True, null=True, help_text=u'启动页面图片截止日期')
80
+    src = models.IntegerField(_(u'src'), choices=SRC, default=PAIAI_USER, help_text=u'启动页面来源', db_index=True)
62 81
 
63 82
     class Meta:
64 83
         verbose_name = _('splashinfo')
@@ -91,7 +110,7 @@ class FeedbackInfo(CreateUpdateMixin):
91 110
 
92 111
     user_id = models.CharField(_(u'user_id'), max_length=255, blank=True, null=True, help_text=u'用户唯一标识')
93 112
     feedback = models.TextField(_(u'feedback'), blank=True, null=True, help_text=u'用户反馈')
94
-    src = models.IntegerField(_(u'src'), choices=SRC, default=PAIAI_USER, help_text=u'用户反馈来源')
113
+    src = models.IntegerField(_(u'src'), choices=SRC, default=PAIAI_USER, help_text=u'用户反馈来源', db_index=True)
95 114
 
96 115
     class Meta:
97 116
         verbose_name = _('feedbackinfo')

+ 6 - 2
operation/views.py

@@ -18,7 +18,9 @@ def upgrade_api(request):
18 18
     :param request:
19 19
     :return:
20 20
     """
21
-    latest_app = get_latest_app()
21
+    src = int(request.POST.get('src', 0))
22
+
23
+    latest_app = get_latest_app(src)
22 24
 
23 25
     if request.iOS:
24 26
         appinfo = {
@@ -45,7 +47,9 @@ def splash_api(request):
45 47
     :param request:
46 48
     :return:
47 49
     """
48
-    splashes = SplashInfo.objects.all()
50
+    src = int(request.POST.get('src', 0))
51
+
52
+    splashes = SplashInfo.objects.filter(src=src, status=True)
49 53
     splashes = [splash.data for splash in splashes]
50 54
 
51 55
     return response(200, 'Get Splash Success', u'获取最新版信息成功', {

+ 5 - 5
utils/redis/rapp.py

@@ -14,16 +14,16 @@ r = settings.REDIS_CACHE
14 14
 # 最新 APP 相关
15 15
 
16 16
 
17
-def set_latest_app():
17
+def set_latest_app(src=0):
18 18
     """ 设置最新 APP 信息 """
19 19
     try:
20
-        appinfo = LatestAppInfo.objects.all()[0].data
20
+        appinfo = LatestAppInfo.objects.filter(src=src)[0].data
21 21
     except IndexError:
22 22
         appinfo = {}
23
-    r.set(LATEST_APP_INFO, json.dumps(appinfo))
23
+    r.set(LATEST_APP_INFO % src, json.dumps(appinfo))
24 24
     return appinfo
25 25
 
26 26
 
27
-def get_latest_app():
27
+def get_latest_app(src=0):
28 28
     """ 获取最新 APP 信息 """
29
-    return json.loads(r.get(LATEST_APP_INFO) or '{}') or set_latest_app()
29
+    return json.loads(r.get(LATEST_APP_INFO % src) or '{}') or set_latest_app(src)

+ 1 - 1
utils/redis/rkeys.py

@@ -48,4 +48,4 @@ SYSTEM_MESSAGE_DELETED_INFO = 'system:message:deleted:info:%s'  # STRING,系
48 48
 GUEST_ENTRANCE_CONTROL_INFO = 'guest:entrance:control:info'  # STRING,游客入口控制信息
49 49
 
50 50
 # APP 相关
51
-LATEST_APP_INFO = 'latest:app:info'  # STRING,最新 APP 信息
51
+LATEST_APP_INFO = 'latest:app:info:%s'  # STRING,最新 APP 信息,src